import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

import vuexPersist from "vuex-persist";
export default new Vuex.Store({
  state: {
    shoplist: [],
  },
  mutations: {
    add(state, i) {
      // state.shoplist.push(i);
      let flag = false;
      //代表了加入购物车的商品之前存不存在
      state.shoplist.forEach((item) => {
        if (item._id == i._id) {
          flag = true;
          item.num++;
        }
      });
      //循环购物车 如果这个商品之前在购物车中存在 那么就让num++

      if (flag == false) {
        i.num = 1;
        state.shoplist.push(i);
      }
      //循环结束之后flag没有变成true证明这个商品不存在 就给他一个初始的num为1 并向购物车数据中添加
    },
    remove(state, index) {
      state.shoplist.splice(index, 1);
    },
    changenum() {},
    clear(state, result) {
      // result代表要删的数据
      // state.shoplist代表所有的购物车数据
      state.shoplist = state.shoplist.filter((item) => {
        return result.includes(item) == false;
      });
      //把不删的数据筛选出来 重新赋值给购物车数据
    },
  },
  actions: {},
  modules: {},
  plugins: [
    new vuexPersist({
      storage: window.localStorage,
    }).plugin,
  ],
});
